package main

import "fmt"

type int8AAA int8

// 如果类型太多了，就可以自定泛型类型
// ~ 这个是 和 数据类型一起出现的   会把这个类型的 衍生类型全部识别出来
type MyInt interface{
	int | ~int8 | int16 | int32 | int64 | int8AAA
}

func GetMaxNum[T MyInt](a,b T) T{
	if a > b{
		return a
	}
	return b
}

func main() {

	var a int = 10
	var b int = 20
	fmt.Println(GetMaxNum(a,b))
	fmt.Println(GetMaxNum[int](a,b))
	var c int8AAA = 20
	var d int8AAA = 20
	fmt.Println(GetMaxNum(c,d))
	fmt.Println(GetMaxNum[int8AAA](c,d))

}
